<?php
/**
 * 时时彩开奖。 中奖不在这里
 */
defined('IN_YuLin') || exit('NO PERMIT!');
include_once (ROOT_PATH.'module/lottery/script_common.inc.php');
$beginTime = time();
echo '<pre>';

$creditPlayTab = Table('lottery_credit_play');
$lottTab       = Table('lottery');
$cateTab       = Table('lottery_category');
$qihaoTab      = Table('lottery_k3');
// 获取当前 十一选五需要计算的彩种
$sql = 'SELECT lott.`id`, lott.`title`, lott.`credit`, play.`open_param`, play.`type_id` FROM ' . $creditPlayTab . ' AS play
        LEFT JOIN ' . $lottTab . ' AS lott
        ON play.`lott_id` = lott.`id`
        LEFT JOIN ' . $cateTab . ' AS cate
        ON cate.`id` = lott.`cate_id`
        WHERE cate.`sname` = "ssc" AND lott.`credit` = 1 AND play.status = 1';
$lottList       = $db->getall($sql);

foreach ($lottList as $lk => $lv){
    // 获取指定彩种上一期的开彩号码
    $sql    = 'SELECT id, tid, period, starttime, stoptime, day, opentime, `code` FROM ' . $qihaoTab . ' WHERE tid = ' . $lv['id'] . ' AND stoptime < ' . $beginTime. ' ORDER BY starttime DESC limit 1';
//     $sql    = 'SELECT id, tid, period, starttime, stoptime, day, opentime, `code` FROM ' . $qihaoTab . ' WHERE id = 112005';
    $qihaoInfo = $db->getrow($sql);
    // 如果已开奖，则跳过， 或者还没到时间
    if ($qihaoInfo['code'] || !$qihaoInfo || $qihaoInfo['stoptime'] > $beginTime) continue;
    if ($lv['type_id'] == 2){
        // 获取指定彩种上一期的开彩号码
        $shangqiSql    = 'SELECT `code` FROM ' . $qihaoTab . ' WHERE tid = ' . trim($lv['open_param']) . ' AND `code` != "" ORDER BY starttime DESC limit 1';
        $shangqiInfo   = $db->getrow($shangqiSql);
        if (!$shangqiInfo['code'] || !$shangqiInfo) break;
        
        $rd       = rand(0, 9);
        $lastCode = explode(',', $shangqiInfo['code']);
        $tmpCode  = array();
        foreach ($lastCode as $lk => $lv){
            $lv   = substr(intval($lv * $rd), -1);
            // 计算结果时出现    6*5  or  5*6  结果等于0，  然后开奖号中，该位置就一直是0了， 这里补偿判断
            if (!$lv) $lv = rand(0, 9);
            while($lv > 11){
                $lv = $lv - 9;
            }
            array_push($tmpCode, $lv);
        }
        setOpenCode($qihaoInfo['id'], implode(',', $tmpCode), $db);
        // 计算完毕，跳过下面
        continue;
    }
    
    // 获取当前期号后， 根据期号的id来获取所有当前彩种期号的投注项
    $allBetSql = 'SELECT betting_no, en_play, betting_str, num, multiple, odds, money_unit, eo_money FROM ' . Table('lottery_order_item') . ' WHERE period_id = ' . $qihaoInfo['id'];
//     $allBetSql = 'SELECT betting_no, en_play, betting_str, num, multiple, odds, money_unit, eo_money FROM ' . Table('lottery_order_item') . ' WHERE period_id = 112005';
    $allBetList        = $db->getall($allBetSql);
    // 计算总投注金额
    $betAmountSql = 'SELECT sum(money) as bet_amount FROM ' . Table('lottery_order_item') . ' WHERE period_id = ' . $qihaoInfo['id'];
//     $betAmountSql = 'SELECT sum(money) as bet_amount FROM ' . Table('lottery_order_item') . ' WHERE period_id = 112005';
    $betAmount    = $db->getrow($betAmountSql);
    // 总投注 * 后台设置百分比（intval后成整数了） * 0.01
    $winnerMax    = $betAmount['bet_amount'] * intval($lv['open_param']) * 0.01;
    // ==========================================================================================================
    // ========================== 计算开奖部分 ===================================================================
    // 投注总金额小于10000， 则随机计算一个都不中奖的号码
    if ($betAmount['bet_amount'] < 10000 || !$allBetList || empty($allBetList)){
//     if (!$allBetList || empty($allBetList)){
        // 投注金额太少，直接随机一个开奖号码
        $openCode = array(rand(0, 9), rand(0, 9), rand(0, 9), rand(0, 9), rand(0, 9));
        // 开奖号码补零操作
        setOpenCode($qihaoInfo['id'], implode(',', $openCode), $db);
        return;
    }
    
    // 查询所有投注项中的投注号
    $atom = array();
    foreach ($allBetList as $ak => $av){
        reBackBet($av, $atom);
    }
    arsort($atom);
    // 投注号内容进行整理， 排列出每个位置上的号码出现的频率
    $codeView = array();
    foreach ($atom as $key => $value){
        $tmp = explode(',', $key);
        foreach ($tmp as $key1 => $value1){
            $codeView[$key1 + 1][$value1] += 1;
        }
    }
    // 取出投注次数最少的3-4个号码（每个位置）
    $jiaxiangCodeArr = array();
    foreach ($codeView as $key => $value){
        asort($value);
        if (count($value) > 4) {
            $jiaxiangCodeArr[$key] = array_keys( array_slice($value, 0, 4, true) );
        }else{
            $jiaxiangCodeArr[$key] = array_keys( $value );
        }
    }
    
    // 模拟开奖的总奖金数
    $winnerAmount = 0;
    $tmpOpenCode = array();
    foreach ($jiaxiangCodeArr[1] as $a0 => $z0){
        foreach ($jiaxiangCodeArr[2] as $a1 => $z1){
            foreach ($jiaxiangCodeArr[3] as $a2 => $z2){
                foreach ($jiaxiangCodeArr[4] as $a3 => $z3){
                    foreach ($jiaxiangCodeArr[5] as $a4 => $z4){
                        $kaijiang     = array($z0, $z1, $z2, $z3, $z4);
                        $winnerAmount = 0;
                        foreach ($allBetList as $k1 => $v1){
                            $flag = checkZhongjiang($v1, $kaijiang, $db);
                            if ($flag) {
                                $winnerAmount += $v1['num'] * $v1['multiple'] * $v1['odds'] * $v1['money_unit'] * $v1['eo_money'];
                            }
                        }
                        $tmpOpenCode[implode(',', $kaijiang)] = $winnerAmount;
                    }
                }
            }
        }
    }
    
    asort($tmpOpenCode);
    $lastCode   = '';
    $lastAmount = 0;
    foreach ($tmpOpenCode as $key => $value){
        if ($value > $winnerMax) {
            // 超出中奖金额， 使用上一次的开奖号
            $key   = $lastCode;
            $value = $lastAmount;
            break;
        }
        // 上一个开奖号码，目的是：  如果上一次的开奖号码中奖金额不够设置的金额数， 而下一次的开奖金额大大超过总投注金额（大大超过了设置的中奖金额）， 则去上一个开奖号码
        $lastCode   = $key;
        $lastAmount = $value;
    }
    // 如果当前的号码开出来的奖金大于设置的最大中奖金额， 那就取上一次检查的开奖号码， 
    // 如果上一次的开奖号码是空的， 那说明最少中奖金额的开奖号，开出来中奖金额还是比设置的最大中奖金额大，
    // 简单说，就是每个位置取最少出现的号码， 模拟中奖的情况下，每次中奖的金额都大于了设置的中奖金额， 那么这种情况，  就生成一个随机的号码
    if ($key){
        // 正常情况，找到了最适合的开奖号码
        setOpenCode($qihaoInfo['id'], $key, $db);
    }else{
        // 最差情况， 最少的中奖金额都比设置的返奖数额大，那就随机一个开奖号
        $key = implode(',', array(rand(0, 9), rand(0, 9), rand(0, 9), rand(0, 9), rand(0, 9)));
        setOpenCode($qihaoInfo['id'], $key, $db);
    }
    echo '开奖号：' . $key . ', 模拟中奖金额：' . $value .  ', 总投注金额：' . $betAmount['bet_amount'] . ', 设置最高中奖金额:' . $winnerMax . ', 总耗时:' . (time() - $beginTime);
}
echo 'end';

/**
 * 检查投注项是否中奖
 * @param $data : 投注内容
 * @param $kaijiang : 开奖结果
 * @param $db   : 数据库连接对象
 */
function checkZhongjiang($data, $code, $db){
    $flag  = false;
    $betArr = explode(',', $data['betting_no']);
    switch ($data['en_play']){
        case 'YX-DWD|FS'://一星定位但|复式
            if($betArr[0] == $code[0] || $betArr[1] == $code[1] || $betArr[2] == $code[2] || $betArr[3] == $code[3] || $betArr[4] == $code[4])
            {
                // 恭喜中奖
                $flag  = true;
            }
            break;
        case 'QE-ZHI_X|FS'://前二直选复式
        case 'QE-ZHI_X|DS'://前二直选单式
            if($betArr[0] == $code[0] && $betArr[1] == $code[1]){
                // 恭喜中奖
                $flag  = true;
            }
            break;
        case 'QE-ZHI_X|HZ'://前二直选和值
            if(bccomp(bcadd($code[0], $code[1], 0),$betArr[0], 0) === 0 )
            {
                // 恭喜中奖
                $flag  = true;
            }
            break;
        case 'QE-ZHI_X|KD'://前二跨度
            if(bccomp(abs(bcsub($code[0], $code[1], 0)),$betArr[0], 0) === 0)
            {
                // 恭喜中奖
                $flag  = true;
            }
            break;
        case 'QE-ZU_X|FS'://前二组选复式
        case 'QE-ZU_X|DS'://前二组选单式
            $tmp= array_shift(array_chunk($code, 2));
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp)){
                $flag  = true;
            }
            break;
        case 'QE-ZU_X|HZ'://前二组选和值
            //所选数值等于开奖号码的前二位数字相加之和（不含对子）
            if(bccomp($code[0], $code[1], 0) !== 0 && bccomp($betArr[0], bcadd($code[0], $code[1], 0)) ===0)
            {
                $flag  = true;
            }
            break;
        case 'QE-ZU_X|BD'://前二组选包胆
            $tmp= array_shift(array_chunk($code, 2));
            if(bccomp($tmp[0], $tmp[1], 0) !== 0 && in_array($betArr[0], $tmp) ){
                $flag  = true;
            }
            break;
        case 'HE-ZHI_X|FS'://后二直选复式
        case 'HE-ZHI_X|DS'://后二直选单式
            $tmp = array_slice($code, -2);
            if ($betArr[0] ==  $tmp[0] && $betArr[1] ==  $tmp[1]){
                $flag  = true;
            }
            break;
        case 'HE-ZHI_X|HZ'://后二直选和值
            $tmp = array_slice($code, -2);
            if (bccomp($betArr[0], array_sum($tmp), 0) === 0){
                $flag  = true;
            }
            break;
        case 'HE-ZHI_X|KD'://后二跨度
            $tmp = array_slice($code, -2);
            if(bccomp(abs(bcsub($tmp[0], $tmp[1], 0)),$betArr[0], 0) === 0)
            {
                // 恭喜中奖
                $flag  = true;
            }
            break;
        case 'HE-ZU_X|FS'://后二组选复式
        case 'HE-ZU_X|DS'://后二组选单式
            $tmp = array_slice($code, -2);
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp))
            {
                $flag  = true;
            }
            break;
        case 'HE-ZU_X|HZ'://后二组选和值
            $tmp = array_slice($code, -2);
            if(bccomp($tmp[0], $tmp[1], 0) !== 0 && bccomp($betArr[0], bcadd($tmp[0], $tmp[1], 0)) ===0)
            {
                $flag  = true;
            }
            break;
        case 'HE-ZU_X|BD'://后二组选包胆
            $tmp = array_slice($code, -2);
            if(bccomp($tmp[0], $tmp[1], 0) !== 0 && in_array($betArr[0], $tmp) ){
                $flag  = true;
            }
            break;
        case 'QS-ZHI_X|FS':
            // 前三直选复式
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'QS-ZHI_X|DS':
            // 前三直选单式
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZHI_X|FS':
            // 中三： 直选复式
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'ZS-ZHI_X|DS':
            // 中三： 直选单式
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZHI_X|FS':
            // 后三： 直选复式
            $beginSlice = $beginSlice ? $beginSlice : 2;
        case 'HS-ZHI_X|DS':
            // 后三： 直选单式
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $tmp  = array_slice($code, $beginSlice, 3);
            if($betArr[0] == $tmp[0] && $betArr[1] == $tmp[1] && $betArr[2] == $tmp[2]){
                $flag  = true;
            }
            break;

        case 'QS-ZHI_X|HZ':
            //前三直选和值
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZHI_X|HZ':
            // 中三： 直选和值
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZHI_X|HZ':
            // 后三： 直选和值
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $tmp  = array_slice($code, $beginSlice, 3);
            if($betArr[0] == array_sum($tmp)){
                $flag  = true;
            }
            break;
        case 'QS-ZHI_X|KD':
            //前三直选跨度
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZHI_X|KD':
            // 中三： 直选跨度
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZHI_X|KD':
            // 后三： 直选跨度
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $tmp  = array_slice($code, $beginSlice, 3);
            sort($tmp);
            $max = array_pop($tmp);
            $min = array_shift($tmp);
            if($betArr[0] == ($max - $min)){
                $flag  = true;
            }
            break;
        case 'QS-ZU_X|HZ':
            //前三组选和值
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZU_X|HZ':
            // 中三： 组选和值
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZU_X|HZ':
            // 后三： 组选和值
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $tmp  = array_slice($code, $beginSlice, 3);
            // 不含豹子
            if(count(array_unique($tmp)) == 1) break;
            if($betArr[0] == array_sum($tmp)){
                $flag  = true;
            }
            $checkOdds  = true;
            break;

        case 'QS-ZU_X|ZS':
            //前三组选组三
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'QS-ZU_X|ZL':
            //前三组选组六
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'QS-ZU_X|HHZX':
            //前三混合组选
            $beginSlice = $beginSlice ? $beginSlice : 0;
            $checkOdds  = true;
        case 'QS-ZU_X|ZSDS':
            // 前三组三单式
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'QS-ZU_X|ZLDS':
            // 前三组六单式
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZU_X|ZS':
            // 中三： 组选组三
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'ZS-ZU_X|ZL':
            // 中三： 组选组六
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'ZS-ZU_X|HHZX':
            // 中三： 混合组选
            $beginSlice = $beginSlice ? $beginSlice : 1;
            $checkOdds  = true;
        case 'ZS-ZU_X|ZSDS':
            // 中三： 组三单式
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'ZS-ZU_X|ZLDS':
            // 中三： 组六单式
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZU_X|ZS':
            // 后三： 组选组三
            $beginSlice = $beginSlice ? $beginSlice : 2;
        case 'HS-ZU_X|ZL':
            // 后三： 组选组六
            $beginSlice = $beginSlice ? $beginSlice : 2;
        case 'HS-ZU_X|HHZX':
            // 后三： 混合组选
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $checkOdds  = true;
        case 'HS-ZU_X|ZSDS':
            // 后三： 组选组三单式
            $beginSlice = $beginSlice ? $beginSlice : 2;
        case 'HS-ZU_X|ZLDS':
            // 后三： 组选组六单式
            $beginSlice = $beginSlice ? $beginSlice : 2;

            $tmp  = array_slice($code, $beginSlice, 3);
            sort($tmp);
            sort($betArr);
            if($betArr[0] == $tmp[0] && $betArr[1] == $tmp[1] && $betArr[2] == $tmp[2]){
                $flag  = true;
            }
            break;
        case 'QS-ZU_X|BD':
            // 前三组选包胆
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-ZU_X|BD':
            // 中三： 组选包胆
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-ZU_X|BD':
            // 后三： 组选包胆
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $checkOdds  = true;
            $tmp  = array_slice($code, $beginSlice, 3);
            // 投注号码不存在开奖号码中
            if (!in_array($betArr[0], $tmp)) break;
            // 豹子不算
            if(count(array_unique($tmp)) == 1) break;
            $flag  = true;
            break;
        case 'QS-BDW|YM':
            // 前三不定位一码不定位
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-BDW|YM':
            // 中三： 一码不定位
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-BDW|YM':
            // 后三： 一码不定位
            $beginSlice = $beginSlice ? $beginSlice : 2;
            $tmp  = array_slice($code, $beginSlice, 3);
            if(in_array($betArr[0], $tmp)){
                $flag  = true;
            }
            break;
        case 'QS-BDW|EM':
            // 前三： 二码不定位
            $beginSlice = $beginSlice ? $beginSlice : 0;
        case 'ZS-BDW|EM':
            // 中三： 二码不定位
            $beginSlice = $beginSlice ? $beginSlice : 1;
        case 'HS-BDW|EM':
            // 后三： 二码不定位
            $beginSlice = $beginSlice ? $beginSlice : 2;

            $tmp  = array_slice($code, $beginSlice, 3);
            if(in_array($betArr[0], $tmp) && in_array($betArr[1], $tmp)){
                $flag  = true;
            }
            break;


        case 'SI_X-ZHI_X|FS':
            // 四星： 直选复式
        case 'SI_X-ZHI_X|DS':
            // 四星： 直选单式
            $tmp = array_slice($code, 1, 4);
            $flag  = true;
            foreach ($betArr as $k => $v){
                if ($v != $tmp[$k]) {
                    $flag  = false;
                    break;
                }
            }
            break;
        case 'SI_X-ZU_X|ZX24':
            // 四星： 组选24
        case 'SI_X-ZU_X|ZX12':
            // 四星： 组选12
        case 'SI_X-ZU_X|ZX6':
            // 四星： 组选6
        case 'SI_X-ZU_X|ZX4':
            // 四星： 组选4
            $tmp = array_slice($code, 1, 4);
            sort($tmp);
            sort($betArr);
            $flag  = true;
            foreach ($betArr as $k => $v){
                if ($v != $tmp[$k]) {
                    $flag  = false;
                    break;
                }
            }
            break;
        case 'SI_X-BDW|YM':
            // 四星： 一码不定位
            $tmp = array_slice($code, 1, 4);
            if(in_array($betArr[0], $tmp)) $flag  = true;
            break;
        case 'SI_X-BDW|EM':
            // 四星： 二码不定位
            $tmp = array_slice($code, 1, 4);
            foreach ($betArr as $k => $v){
                $flagIndex = array_search($v, $tmp);
                if ($flagIndex === false){
                    break;
                }else{
                    unset($tmp[$flagIndex]);
                }
            }
            // 如果剔除了两个元素，那说明两个号码都进入了判断，移除了开奖号码，开奖号码长度变为2
            if(count($tmp) == 2) $flag  = true;
            break;
        case 'WU_X-ZHI_X|FS':
            // 五星： 直选复式
        case 'WU_X-ZHI_X|DS':
            // 五星： 直选单式
            $flag  = true;
            foreach ($betArr as $k => $v){
                if($v != $code[$k]) {
                    $flag  = false;
                    break;
                }
            }
            break;
        case 'WU_X-ZU_X|ZX120':
            // 五星： 组选120
        case 'WU_X-ZU_X|ZX60':
            // 五星： 组选60
        case 'WU_X-ZU_X|ZX30':
            // 五星： 组选30
        case 'WU_X-ZU_X|ZX20':
            // 五星： 组选20
        case 'WU_X-ZU_X|ZX10':
            // 五星： 组选10
        case 'WU_X-ZU_X|ZX5':
            // 五星： 组选5
            $flag  = true;
            sort($betArr);
            sort($code);
            foreach ($betArr as $k => $v){
                if($v != $code[$k]) {
                    $flag  = false;
                    break;
                }
            }
            break;
        case 'WU_X-BDW|YM':
            // 五星： 一码不定位
            $checkNums = $checkNums ? $checkNums : 4;
        case 'WU_X-BDW|EM':
            // 五星： 二码不定位
            $checkNums = $checkNums ? $checkNums : 3;
        case 'WU_X-BDW|SM':
            // 五星： 三码不定位
            $checkNums = $checkNums ? $checkNums : 2;
            $tmp       = $code;
            foreach ($betArr as $k => $v){
                $flagIndex = array_search($v, $tmp);
                if ($flagIndex === false){
                    break;
                }else{
                    unset($tmp[$flagIndex]);
                }
            }
            // 如果剔除了两个元素，那说明两个号码都进入了判断，移除了开奖号码，开奖号码长度变为$checkNums
            if(count($tmp) == $checkNums) $flag  = true;
            break;
        case 'WU_X-QW|YFFS':
            // 五星： 一帆风顺
            $checkTimes = $checkTimes ? $checkTimes : 4;
        case 'WU_X-QW|HSCS':
            // 五星： 好事成双
            $checkTimes = $checkTimes ? $checkTimes : 3;
        case 'WU_X-QW|SXBX':
            // 五星： 三星报喜
            $checkTimes = $checkTimes ? $checkTimes : 2;
        case 'WU_X-QW|SJFC':
            // 五星： 四季发财
            $checkTimes = $checkTimes ? $checkTimes : 1;

            $tmp         = $code;
            $repeayTimes = 0;
            foreach ($betArr as $k => $v){
                $flagIndex = array_search($v, $tmp);
                if ($flagIndex === false){
                    break;
                }else{
                    unset($tmp[$flagIndex]);
                }
            }
            // 如果剔除了两个元素，那说明两个号码都进入了判断，移除了开奖号码，开奖号码长度变为$checkNums
            if(count($tmp) == $checkTimes) $flag  = true;
            break;
        case 'DXDS-DXDS|QE':
            // 大小单双： 前二
        case 'DXDS-DXDS|HE':
            // 大小单双： 后二
        case 'DXDS-DXDS|QS':
            // 大小单双： 前三
        case 'DXDS-DXDS|HS':
            // 大小单双： 后三
            $tmp = array_slice($code, 0, 2);
            $checkFlag = true;
            $flag  = true;
            foreach ($betArr as $k => $v){
                switch ($v){
                    case '大':
                        if ($tmp[$k] <= 4) $checkFlag = false;
                        break;
                    case '小':
                        if ($tmp[$k] > 4) $checkFlag  = false;
                        break;
                    case '单':
                        if ($tmp[$k] == 0 || !$tmp[$k] % 2) $checkFlag  = false;
                        break;
                    case '双':
                        if ($tmp[$k] % 2) $checkFlag  = false;
                        break;
                }
                if (!$checkFlag) {
                    $flag  = false;
                    break;
                }
            }
            break;
        default:
            break;
    }
   return $flag;
}

/**
 * 还原投注内容格式
 * @param unknown $data
 * @param unknown $kaijiang
 * @param unknown $db
 */
function reBackBet($data, &$atom){
    if (!$data['betting_no']) return;
    $flag     = true;
    $bet_no   = $data['betting_no'];
    switch ($data['en_play']){
        case 'QE-ZHI_X|FS'://前二直选复式
        case 'QE-ZHI_X|DS'://前二直选单式
        case 'QE-ZU_X|FS': //前二组选复式
        case 'QE-ZU_X|DS': //前二组选单式
            $bet_no .= ',*,*,*';
            break;
        case 'QE-ZU_X|BD'://前二组选包胆
            $bet_no .= ',*,*,*,*';
            break;
        case 'HE-ZHI_X|FS'://后二直选复式
        case 'HE-ZHI_X|DS'://后二直选单式
        case 'HE-ZU_X|FS'://后二组选复式
        case 'HE-ZU_X|DS'://后二组选单式
            $bet_no = '*,*,*,' . $bet_no;
            break;
        case 'HE-ZU_X|BD'://后二组选包胆
            $bet_no .= ',*,*,*,*';
            break;
            
        case 'QS-ZHI_X|FS':
        case 'QS-ZHI_X|DS':
        case 'QS-ZU_X|ZS':
        case 'QS-ZU_X|ZL':
        case 'QS-ZU_X|HHZX':
        case 'QS-ZU_X|ZSDS':
        case 'QS-ZU_X|ZLDS':
            $bet_no .= ',*,*';
            break;
        case 'QS-ZU_X|BD':
            $bet_no .= ',*,*,*,*';
            break;
        case 'ZS-ZU_X|BD':
            $bet_no = '*,'. $bet_no . ',*,*,*';
            break;
        case 'HS-ZU_X|BD':
            $bet_no = '*,*,' . $bet_no . ',*,*';
            break;
        case 'ZS-ZHI_X|FS':
        case 'ZS-ZHI_X|DS':
        case 'ZS-ZU_X|ZS':
        case 'ZS-ZU_X|ZL':
        case 'ZS-ZU_X|HHZX':
        case 'ZS-ZU_X|ZSDS':
        case 'ZS-ZU_X|ZLDS':
            $bet_no = '*,' . $bet_no . ',*';
            break;
        case 'HS-ZHI_X|FS':
        case 'HS-ZHI_X|DS':
        case 'HS-ZU_X|ZS':
        case 'HS-ZU_X|ZL':
        case 'HS-ZU_X|HHZX':
        case 'HS-ZU_X|ZSDS':
        case 'HS-ZU_X|ZLDS':
            $bet_no = '*,*,' . $bet_no;
            break;
        case 'QS-BDW|YM': // 前三不定位一码不定位
            $bet_no .= ',*,*,*,*';
            break;
        case 'QS-BDW|EM':
            $bet_no .= ',*,*,*';
            break;
        case 'ZS-BDW|YM':
            $bet_no = '*,' . $bet_no . ',*,*,*';
            break;
        case 'ZS-BDW|EM':
            $bet_no = '*,' . $bet_no . ',*,*';
            break;
        case 'HS-BDW|YM': // 后三： 一码不定位
            $bet_no = '*,*,' . $bet_no . ',*,*';
            break;
        case 'HS-BDW|EM':
            $bet_no = '*,*,' . $bet_no . ',*';
            break;
        case 'SI_X-ZHI_X|FS':
            // 四星： 直选复式
            break;
        case 'SI_X-ZHI_X|DS':
            // 四星： 直选单式
        case 'SI_X-ZU_X|ZX24':
            // 四星： 组选24
        case 'SI_X-ZU_X|ZX12':
            // 四星： 组选12
        case 'SI_X-ZU_X|ZX6':
            // 四星： 组选6
        case 'SI_X-ZU_X|ZX4':
            // 四星： 组选4
            $bet_no = '*,' . $bet_no;
            break;
        case 'SI_X-BDW|YM':
            // 四星： 一码不定位
            $bet_no = '*,' . $bet_no . ',*,*,*';
            break;
        case 'SI_X-BDW|EM':
            // 四星： 二码不定位
            $bet_no = '*,' . $bet_no . ',*,*';
            break;
        case 'WU_X-BDW|YM':
            // 五星： 一码不定位
            $bet_no = '*,' . $bet_no . ',*,*,*';
            break;
        case 'WU_X-BDW|EM':
            // 五星： 二码不定位
            $bet_no = '*,' . $bet_no . ',*,*';
            break;
        case 'WU_X-BDW|SM':
            $bet_no = '*,' . $bet_no . ',*';
            break;
        case 'WU_X-QW|YFFS':
            // 五星： 一帆风顺
            $bet_no = '*,*,*,*,' . $bet_no;
            break;
        case 'WU_X-QW|HSCS':
            // 五星： 好事成双
            $bet_no = '*,*,*,' . $bet_no . ',' . $bet_no;
            break;
        case 'WU_X-QW|SXBX':
            // 五星： 三星报喜
            $bet_no = '*,*,' . $bet_no . ',' . $bet_no . ',' . $bet_no;
            break;
        case 'WU_X-QW|SJFC':
            $bet_no = '*,' . $bet_no . ',' . $bet_no . ',' . $bet_no . ',' . $bet_no;
            break;
        default:
            $flag = false;
            break;
    }
    if ($flag) {
        $atom[$bet_no]   += $data['odds'];
//         $atom[$data['en_play']][$bet_no]['win']   += $data['odds'];
//         $atom[$data['en_play']][$bet_no]['times'] += 1;
    }
}


